package algorithm.sort;

public class Select {
    public void SelectSort(Comparable[] arr) {
        // 选择排序
        // 每次找到最小的元素，然后放到前面
        for (int i =0;i<arr.length-2;i++) {
            int minIndex=i;
            for (int j =i+1;j<arr.length;j++) {
                if(less(arr[j],arr[minIndex])){
                   minIndex=j;
                }
            }
            swap(arr,i,minIndex);
        }
    }

    private Boolean less(Comparable v, Comparable w) {
        return v.compareTo(w)<0;
    }

    private void swap(Comparable[] arr,int i,int j){
        Comparable temp=arr[i];
        arr[i]=arr[j];
        arr[j]=temp;
    }
}
